from pygame.sprite import Sprite


class Alien(Sprite):
    """一个外星人的类"""
    def __init__(self, ai_settings, screen):
        """初始化一个外星人并设置其初始位置"""
        super(Alien, self).__init__()
        self.ai_settings = ai_settings
        self.screen = screen
        # 加载外星人图像并获取其外接矩形
        self.image = self.ai_settings.alien_image
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()
        # 初始外星人都放在屏幕底部中央
        # self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = 0
        # 存储用小数表示的子弹位置
        self.y = float(self.rect.y)
        # 存储外星人的速度
        self.speed_factor = self.ai_settings.alien_speed_factor

    def update(self):
        """向下移动外星人"""
        # 更新表示子弹位置的小数值
        self.y += self.speed_factor
        # 更新表示子弹的 rect 的位置
        self.rect.y = self.y

    def draw_bullet(self):
        """在指定位置绘制外星人"""
        self.screen.blit(self.image, self.rect)
